package com.welike.shibo.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.welike.shibo.eneity.Comments;
import com.welike.shibo.vo.page.CommentMsgPageVo;
import com.welike.shibo.vo.page.CommentPageVo;

import java.util.List;

/**
 * Created by fangyu on 2019-08-18.
 */
public interface CommentsService extends IService<Comments> {

    /**
     * 查询视频的评论并分页
     * @param page
     * @param pageSize
     * @param vid
     * @return
     */
    IPage<Comments> selectCommentPage(int page, int pageSize, String vid);

    // 查询视频最新的一条评论
    Comments selectCommentTop(String vid);

    // 查询评论(cid)收获了多个赞(视频的评论)
    Integer queryLikeCountsById(Integer cid);

    // 统计所有评论的数量
    Integer countByComment();

    // 统计视频评论的数量
    Integer countByVid(String vid);

    /**
     * 查询评论列表
     * @param page 页码
     * @param pageSize 分页大小
     * @param vid 当前视频id
     * @param uid 当前登录用户的uid
     * @return List(CommentPageVo)
     */
    List<CommentPageVo> getCommentPageVoList(int page, int pageSize, String vid, String uid);

    /**
     * 查询所有评论列表
     * @param vid 当前视频id
     * @param uid 当前登录用户的uid
     * @return List(CommentPageVo)
     */
    List<CommentPageVo> getCommentPageVoList(String vid, String uid);

    /**
     * 获取评论和@的信息
     * @param page
     * @param pageSize
     * @param uid 用户id
     * @return List(CommentMsgPageVo)
     */
    List<CommentMsgPageVo> getUserCommentMsgPageList(int page, int pageSize, String uid);

    IPage<Comments> queryCommentsPage(int page, int pageSize);

}
